'use strict';

module.exports = {
  // 非必填，默认true，是否自动生成restful接口，如果autoRestful=false，以下的所有配置都无效
  autoRestful: false,
  // 必填，数据表的字段，该案例模拟一个商品表
  fields: {
    title: 'required|string',
    cate: 'required|string',
    quantity: 'required|number|min:0',
    sales: 'number',
  },
  // 非必填，mongoose的schema校验规则，如果不填，会自动把fields转换一份schema规则，一般只有特殊表才需要这么填
  // schema: {},
  // 非必填，默认[ 'destory', 'update', 'fetchList', 'fetch', 'fetchAll', 'create' ], 生成的接口类型，destory=删除、update=更新、fetchList=获取列表、fetch=获取详情、fetchAll=获取全部、create=创建
  support: [ 'destory', 'update', 'fetchList', 'fetch', 'fetchAll', 'create' ],
  // 非必填
  create: {
    // 允许传入的字段
    enable: [ 'title', 'cate', 'quantity' ],
    // 禁止传入的字段，enable与disable同时存在时，enable优先于disable
    // disable: [ 'sales' ],
    // 提供除了schema以外的校验字段
    input: {
      cateId: 'string',
    },
    // 默认字段
    default: { sales: 0 },
    // 公开字段，指定要输出的字段
    public: [ 'title', 'cate', 'quantity' ],
    // 隐私字段，不能暴露，privacy与public同时存在时以public为准
    // privacy: [ 'sales' ],
  },
  // 非必填
  update: {
    // 允许传入的字段
    enable: [ 'title', 'cate' ],
    // 禁止传入的字段，enable与disable同时存在时，enable优先于disable
    // disable: [ 'sales' ],
    // 提供除了schema以外的校验字段
    input: {
      cateId: 'string',
    },
    // 公开字段，指定要输出的字段
    public: [ 'title', 'cate', 'quantity' ],
    // 隐私字段，不能暴露，privacy与public同时存在时以public为准
    // privacy: [ 'sales' ],
  },
  // 非必填
  destory: {},
  // 非必填
  fetch: {
    privacy: [ 'sales' ],
  },
  // 非必填
  fetchAll: {
    privacy: [ 'sales' ],
  },
};
